<?php

/**
 * 获取基础路径。
 *
 * @param string $path 要添加到基础路径的路径。
 * @return string 返回完整的文件路径。
 */
function basePath($path = '') {
    return __DIR__ . '/' . ltrim($path, '/');
}

/**
 * 加载部分视图。
 *
 * @param string $name 要加载的部分视图的名称。
 */
function loadPartial($name, $data = []) {
    $partialPath = basePath("App/views/partials/{$name}.php");
    if (file_exists($partialPath)) {
        extract($data);
        require $partialPath;
    } else {
        
        echo "{$name} 部分视图不存在！";
    }
}

/**
 * 加载视图。
 *
 * @param string $name 要加载的视图的名称。
 * @param array $data 要传递给视图的数据。
 */
function loadView($name, $data = []) {
    $viewPath = basePath("App/views/{$name}.view.php");

    if (file_exists($viewPath)) {
        extract($data);
        require $viewPath;
    } else {
        // 考虑使用 logger 记录错误而不是直接 echo
        echo "{$name} 视图不存在！";
    }
}

/**
 * 打印变量并格式化输出。
 *
 * @param mixed $value 要打印的值。
 */
function inspect($value) {
    echo '<pre>';
    var_dump($value);
    echo '</pre>';
}

/**
 * 打印变量并终止脚本。
 *
 * @param mixed $value 要打印的值。
 */
function inspectAndDie($value) {
    echo '<pre>';
    var_dump($value);
    die();
}

/**
 * 清洗数据，防止XSS攻击。
 *
 * @param string $dirty 待清洗的原始字符串数据。
 * @return string 返回清洗后的安全字符串。
 */
function sanitize($dirty) {
    return filter_var(trim($dirty), FILTER_SANITIZE_SPECIAL_CHARS);
}

/**
 * 重定向到指定的URI。
 *
 * @param string $uri 要重定向到的URI。
 */
function redirect($uri) {
    header("Location: {$uri}");
    exit;
}

?>